package com.prueba.client.datos;

import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
  
public class VistasData extends DataSource {  
  
    private static VistasData instance = null;  
  
    public static VistasData getInstance() {  
        if (instance == null) {  
            instance = new VistasData();  
        }  
        return instance;  
    }  
  
    public VistasData() {  
  
        setID("Vistas");  //para marcar foreing key desde otros datasource
        //setTitleField("Vista");  
        setRecordXPath("/lista/vista");  //para indicar la ruta en el xml??
    	
        //Campo Vista:
        DataSourceTextField vistaNombre=new DataSourceTextField("vista", "Vista");
    	vistaNombre.setPrimaryKey(true);  
    	vistaNombre.setRequired(true);  
    	
    	//Campo complejidad:
    	DataSourceTextField vistaComplejidad = new DataSourceTextField("complejidad", "Complejidad");
    	vistaComplejidad.setValueMap("baja","media","alta");
    	vistaComplejidad.setRequired(true);
    	
    	//Campo elementos:
    	DataSourceTextField vistaElementos = new DataSourceTextField("elementos", "Elementos");
    	vistaElementos.setRequired(true);
    	IntegerRangeValidator restriccionCantidad=new IntegerRangeValidator();
    	restriccionCantidad.setMax(Integer.MAX_VALUE);
    	restriccionCantidad.setMin(1);
    	vistaElementos.setValidators(restriccionCantidad);
    	//Campo relaciones:
    	DataSourceTextField vistaRelaciones = new DataSourceTextField("relaciones", "Relaciones");
    	vistaRelaciones.setRequired(true);
    	vistaRelaciones.setValidators(restriccionCantidad);
    	
    	//campo seccion padre:
        DataSourceTextField seccionPadre = new DataSourceTextField("padre", "Seccion padre");  
        seccionPadre.setRequired(true);  
        seccionPadre.setForeignKey("Vistas.vista");  
        seccionPadre.setRootValue("Documento");     	
    	
        setFields(vistaNombre,vistaComplejidad,vistaElementos,vistaRelaciones,seccionPadre);  
        setDataURL("datos/vistas.xml");  
        setClientOnly(true);  //para indicar que los datos estan en el cliente?? 
        //porque esta operacion cambia la logica??

    }  	
}  